#include <regx52.h>

/**
  * @brief  定时器0初始化，@11.0592MHz
  * @param  
  * @retval
  */
void Timer0_Init()
{
	//TMOD=0x01;有缺陷，会抹掉高四位
	TMOD=TMOD&0XF0;//TMOD&=0XF0;
	TMOD=TMOD|0X01;//TMOD|=0X01;
	//只对低位操作，而不影响高位
	TF0=0;
	//GATE=0; 这里不用配置GATE了，GATE包含在TMOD里面，TMOD是不可位寻址，要整体赋值
	TR0=1;
//	TH0=64535/256;    //这是12MHzl为了计1ms赋初值（12分频后，每1us记一次）
//	TL0=64535%256+1;  //我用的是11.0592MHz就不能这样赋值了，“+1”是因为中断在溢出才产生，计数满1000后并不会产生，1001才会，所以要初始值加一
	TL0 = 0x66;		//设置定时初值（@11.0592MHz）
	TH0 = 0xFC;		//设置定时初值（@11.0592MHz）	
	ET0=1;
	EA=1;
	PT0=0;
	
}


/*	定时器0中断函数模板
	void Timer0_Routine() interrupt 1
{
	static unsigned int a=0;
	TL0 = 0x66;		//设置定时初值
	TH0 = 0xFC;		//设置定时初值	
	a++;
	if(a==1000)
		{
			a=0;
			
		}
	
}
*/